package com.gym.common.redis.lock.api;

import com.gym.common.redis.lock.bean.LockResponse;

public interface IRedisDistributedLockService {
	/**
	 * 全局锁服务
	 * @param key 唯一key
	 * @param timeout 锁的超时时间，默认：尝试一次会等待10毫秒
	 * @param expireTime 锁的过期时间，过期后会被删除，单位：（秒）
	 * @return LockResponse 锁的结果；唯一标志串
	 */
	 public LockResponse lockWithRetry(String key,int tryTimes,long tryWaitTimeMills,int expireTime);
	 
	 /**
	  * 全局锁服务
	  * @param key 唯一key
	  * @param expireTime 锁的过期时间，过期后会被删除，单位：（秒）
	  * @return
	  */
	 public LockResponse lock(String key,int expireTime);
	 
	 /**
	  * 解锁
	  * @param key
	  * @param uuid
	  * @return
	  */
	 public boolean unlock(String key,String uuid);
	 
}
